SlideShare a Scribd company logo
1 of 18
Download to read offline
NETBEANS PLATFORM
Satyajit Tripathi
Member Technical Staff
ISV-Engineering, Sun Microsystems

                                    1
NetBeans Platform
Build new desktop applications without re-inventing the wheel
• NetBeans Platform is a broad SWING-based framework to
  create rich desktop applications
• Platform provides out-of-the-box APIs to simplify application
  common requirements such as window management, menus,
  actions, settings and storage, an update manager, and files
  access
• Core of NetBeans-IDE is Platform ie. NetBeans-IDE 'minus'
  IDE specific modules




                                                                  2
NetBeans Platform Manager
NetBeans IDE 6.1 (build 200805300101)




                                        3
NetBeans Module (Plugin)
Add the missing functionalities to IDE
• Module can be built to extend the functionality of NetBeans
  IDE and to add specific features
• NetBeans (Plug-in) Module is a group of Java classes that
  interacts with NetBeans APIs and provides an application with
  specific features
• Java classes use the MANIFEST.MF file to declare the module
  and XML Layer file (layer.xml) to register their functionality
• Modules with non-installer distributions are packaged as NBM
  files (.nbm extension)



                                                               4
Module (Plugin) Development
Development Life cycle
• Setting up the project
• NetBeans IDE generates Project organization and code
• Coding the module or application
• Building and Running
• Testing, Debugging, and Profiling
• Branding and Distributing




                                                         5
NetBeans Module Projects
NetBeans IDE 6.1




                           6
Module Project Organization
NetBeans IDE 6.1




                              7
NetBeans APIs
Complete API set is quite extensive!
•   Action APIs                  •     Palette APIs
•   File Systems APIs            •     Refactoring APIs
•   Loaders APIs                 •     MultiView APIs
•   Nodes APIs                   •     JavaHelp Integration APIs
•   Windows APIs




                                                                   8
Action APIs
Package : org.openide.actions
• Standard SWING Actions
  For installation of global, always-enabled actions, register javax.swing.Action in
  appropriate folder of System Filesystem. Not necessary to subclass one of NetBeans
  action class. Actions are presented in popup menus or attached to a component such
  as window, node, data object, or filesystem, or installed globally in the main menu or
  toolbars
• Standard NetBeans API Actions
  Action subclasses available in NetBeans API are subclass of SystemAction.
  SystemAction objects should be Singleton.
   > Callback actions
   > Context-sensitive (base class org.openide.util.actions)
   > Presenters
• UseCallableSystemAction (Always enabled)
• Use CookieAction (Conditionally enabled) One or Multiple Nodes


                                                                                           9
File System APIs
Package : org.openide.filesystems
• Manipulating files on disk, and used indirectly by Loaders API
• Common Tasks
  > Finding files and folders
  > Creating, deleting and renaming files and folders
  > Reading and writing files
  > Listening on file events
  > Determining MIME Content type




                                                                   10
Loaders (Datasystems) APIs
Package : org.openide.loaders
• Datasystems are the logical layer between a filesystem and higher level
  file oriented operations. The API works on top of file objects and gives
  each file a logical behavior – icon, name, operation, etc. Each file types
  recognized by NetBeans has a corresponding DataObject subclass
  provided by the module that add support for the file type
• There are three packages in this API
   > org.openide.loaders
       Handles cluster of files together into groups and assign types to data
   > org.openide.cookies
       Provides a design pattern for attachable behaviors to data objects
       and nodes. Cookies provides a way for both data objects and nodes
       to indicate in flexible and dynamic fashion the operation supported
   > org.openide.util.datatransfer
       Implements some extensions to the clipboard, and enhances the
       functions provided in java.awt.datatransfer
                                                                                11
Nodes APIs
Package : org.openide.nodes
• The Nodes API controls the usage and creation of nodes, which are a
  variant of Java Beans having adjustable property sets; provide cookies
  and actions; formed into a hierarchical tree.
• Common node types
  > Data nodes
  > Data folder nodes
  > A user-developed Java Bean on disk
  > A node derived from a Java Bean , not representing one
  > The Component Palette
  > A breakpoint in the debugger is a node
  > A project desktop node (various files associated with a project)



                                                                           12
Window System APIs
Package : org.openide.windows
• The implementation takes care of the main window, all multi-tabbed, and
  split frames, toolbars and MDI/SDI support
• As a rule, modules should not create their own top-level windows (eg.
  java.awt.Window). Those would otherwise not be managed by NetBeans
  window manager
• Window API allows module to provide window-like components, mainly
  through embeddable visual components called topcomponents. A top
  component is a SWING component and need to be docked to be
  manipulated by the window system
• Window manager is capable of manipulating application windows
  including docking and window configuration persistent across session
• The window system layout in NetBeans is based on modes. API
  provides access to modes but cannot create directly. This can be
  achieved by specifying in the XML layer
                                                                            13
Component Palette APIs
Package : org.netbeans.spi.palette
• The API provides access to Common Component Palette. The palette
  client can define content to displayed in the common palette
  TopComponent when their editors are active
• The API includes support for the clients writing palette content insertable
  into the text editor
• Allows users to Drag and Drop text into the palette to create new custom
  code clips. This can be achieved by subclassing DragAndDropHandler
• Palette visibility is defined per document-type
• Palette provider needs to define own actions to reset its default state
• Allows associating palette content with document MIME type
• Allows displaying name and tooltip to be defined directly in item's XML


                                                                                14
MultiView APIs
Package : org.netbeans.core.api.multiview
          org.netbeans.core.spi.multiview
• The API allows to access the multiview component's content. The SPI
  handles the lifecycle of a multiview component
• Multi views enable modules to display several perspectives, or views of
  data, visually represented as data document or object in unified manner
  at one specific place in the system
• A marker interface SourceViewMarker has been added to the
  MultiViewDescription instance to identify as containing source code
• Factory methods to create multiview components
• MultiViews project depends on Window System API
  (org.openide.windows.TopComponent) and some new APIs in openide
  NbDocument.CustomToolbar and CloneableEditorSupport.Pane

                                                                            15
JavaHelp Integration APIs
Package : org.netbeans.api.javahelp
• JavaHelp integration API wraps the standard JavaHelp extension library
  (jh.jar version 1.1.3 or on Solaris /usr/j2se/opt/javahelp/lib/jhall.jar)
• It also provides a small additional API for NetBeans modules to supply
  help sets to the system, add GUI menu items, and request that particular
  help topics be displayed
• A singleton instance of org.netbeans.api.javahelp.Help is registered into
  lookup. An instance of a handler for the nbdocs URL protocol is also
  registered for the module code to find it




                                                                          16
NetBeans 6.1 Platform Resources
• NetBeans Platform Site : platform.netbeans.org
  > Learning: overview, tutorials, quick start, FAQ
  > Community: news, mailing-list, nbusers@netbeans.org, source
• NetBeans API List : Javadoc
• NetBeans 6.1 API Changes : api-changes
• NetBeans Platform wiki : wiki.netbeans.org
  > Release and planning, answers and support, tutorial and api-docs
• Expert Presentation Series : netbeans_platform
• NetBeans Platform Certified Training : nbplatform-certified-training


                                                                         17
NETBEANS 6.1
Satyajit Tripathi
satyajit.tripathi@sun.com


                            18

More Related Content

What's hot

GlassFish Server 3.1: Deploying your Java EE 6 Applications
GlassFish Server 3.1: Deploying your Java EE 6 ApplicationsGlassFish Server 3.1: Deploying your Java EE 6 Applications
GlassFish Server 3.1: Deploying your Java EE 6 ApplicationsArun Gupta
 
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011Arun Gupta
 
Why jakarta ee matters (ConFoo 2021)
Why jakarta ee matters (ConFoo 2021)Why jakarta ee matters (ConFoo 2021)
Why jakarta ee matters (ConFoo 2021)Ryan Cuprak
 
Java EE 8 Update
Java EE 8 UpdateJava EE 8 Update
Java EE 8 UpdateRyan Cuprak
 
Mavenizing your Liferay project
Mavenizing your Liferay projectMavenizing your Liferay project
Mavenizing your Liferay projectmimacom
 
Boston 2011 OTN Developer Days - GlassFish
Boston 2011 OTN Developer Days - GlassFishBoston 2011 OTN Developer Days - GlassFish
Boston 2011 OTN Developer Days - GlassFishArun Gupta
 
GlassFish 3.1 – Simplifying your Java EE 6 Development and Deployment @ JAX L...
GlassFish 3.1 – Simplifying your Java EE 6 Development and Deployment @ JAX L...GlassFish 3.1 – Simplifying your Java EE 6 Development and Deployment @ JAX L...
GlassFish 3.1 – Simplifying your Java EE 6 Development and Deployment @ JAX L...Arun Gupta
 
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010Arun Gupta
 
Faster Java EE Builds with Gradle
Faster Java EE Builds with GradleFaster Java EE Builds with Gradle
Faster Java EE Builds with GradleRyan Cuprak
 
Developing Liferay Plugins with Maven
Developing Liferay Plugins with MavenDeveloping Liferay Plugins with Maven
Developing Liferay Plugins with MavenMika Koivisto
 
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010Arun Gupta
 
Serverless Java Challenges & Triumphs
Serverless Java Challenges & TriumphsServerless Java Challenges & Triumphs
Serverless Java Challenges & TriumphsDavid Delabassee
 
Java EE 6 Clustering with Glassfish 3.1
Java EE 6 Clustering with Glassfish 3.1 Java EE 6 Clustering with Glassfish 3.1
Java EE 6 Clustering with Glassfish 3.1 Shreedhar Ganapathy
 
LUGOD Raspberry Pi Hacking
LUGOD Raspberry Pi HackingLUGOD Raspberry Pi Hacking
LUGOD Raspberry Pi HackingStephen Chin
 

What's hot (20)

GlassFish Server 3.1: Deploying your Java EE 6 Applications
GlassFish Server 3.1: Deploying your Java EE 6 ApplicationsGlassFish Server 3.1: Deploying your Java EE 6 Applications
GlassFish Server 3.1: Deploying your Java EE 6 Applications
 
JEE 8, A Big Overview
JEE 8, A Big OverviewJEE 8, A Big Overview
JEE 8, A Big Overview
 
MySQL Aquarium Paris
MySQL Aquarium ParisMySQL Aquarium Paris
MySQL Aquarium Paris
 
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
 
Why jakarta ee matters (ConFoo 2021)
Why jakarta ee matters (ConFoo 2021)Why jakarta ee matters (ConFoo 2021)
Why jakarta ee matters (ConFoo 2021)
 
Java EE 8 Update
Java EE 8 UpdateJava EE 8 Update
Java EE 8 Update
 
Mavenizing your Liferay project
Mavenizing your Liferay projectMavenizing your Liferay project
Mavenizing your Liferay project
 
Java 9 Modularity in Action
Java 9 Modularity in ActionJava 9 Modularity in Action
Java 9 Modularity in Action
 
Boston 2011 OTN Developer Days - GlassFish
Boston 2011 OTN Developer Days - GlassFishBoston 2011 OTN Developer Days - GlassFish
Boston 2011 OTN Developer Days - GlassFish
 
GlassFish 3.1 – Simplifying your Java EE 6 Development and Deployment @ JAX L...
GlassFish 3.1 – Simplifying your Java EE 6 Development and Deployment @ JAX L...GlassFish 3.1 – Simplifying your Java EE 6 Development and Deployment @ JAX L...
GlassFish 3.1 – Simplifying your Java EE 6 Development and Deployment @ JAX L...
 
GlassFish v3 - Architecture
GlassFish v3 - ArchitectureGlassFish v3 - Architecture
GlassFish v3 - Architecture
 
Java modules using project jigsaw@jdk 9
Java modules using project jigsaw@jdk 9Java modules using project jigsaw@jdk 9
Java modules using project jigsaw@jdk 9
 
Java EE 8
Java EE 8Java EE 8
Java EE 8
 
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
 
Faster Java EE Builds with Gradle
Faster Java EE Builds with GradleFaster Java EE Builds with Gradle
Faster Java EE Builds with Gradle
 
Developing Liferay Plugins with Maven
Developing Liferay Plugins with MavenDeveloping Liferay Plugins with Maven
Developing Liferay Plugins with Maven
 
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010
 
Serverless Java Challenges & Triumphs
Serverless Java Challenges & TriumphsServerless Java Challenges & Triumphs
Serverless Java Challenges & Triumphs
 
Java EE 6 Clustering with Glassfish 3.1
Java EE 6 Clustering with Glassfish 3.1 Java EE 6 Clustering with Glassfish 3.1
Java EE 6 Clustering with Glassfish 3.1
 
LUGOD Raspberry Pi Hacking
LUGOD Raspberry Pi HackingLUGOD Raspberry Pi Hacking
LUGOD Raspberry Pi Hacking
 

Similar to Build Desktop Apps with NetBeans Platform

Developing Plug-Ins for NetBeans
Developing Plug-Ins for NetBeansDeveloping Plug-Ins for NetBeans
Developing Plug-Ins for NetBeanselliando dias
 
Eclipse vs Netbean vs Railo
Eclipse vs Netbean vs RailoEclipse vs Netbean vs Railo
Eclipse vs Netbean vs RailoMohd Safian
 
Netbeans65 Osum Slides
Netbeans65 Osum SlidesNetbeans65 Osum Slides
Netbeans65 Osum SlidesAbhishek Gupta
 
Nuxeo Roadmap 2008/06
Nuxeo Roadmap 2008/06Nuxeo Roadmap 2008/06
Nuxeo Roadmap 2008/06Eric Barroca
 
Project report for final year project
Project report for final year projectProject report for final year project
Project report for final year projectsuneel singh
 
whats-new-netbeans-ide-7x.pptx
whats-new-netbeans-ide-7x.pptxwhats-new-netbeans-ide-7x.pptx
whats-new-netbeans-ide-7x.pptxGabrielSoche
 
005528214.pdf
005528214.pdf005528214.pdf
005528214.pdfEidTahir
 
Frankenstein's IDE: NetBeans and OSGi
Frankenstein's IDE: NetBeans and OSGiFrankenstein's IDE: NetBeans and OSGi
Frankenstein's IDE: NetBeans and OSGiToni Epple
 
Modern web application development with java ee 7
Modern web application development with java ee 7Modern web application development with java ee 7
Modern web application development with java ee 7Shekhar Gulati
 
Busy developer-html5-javaee7
Busy developer-html5-javaee7Busy developer-html5-javaee7
Busy developer-html5-javaee7Geertjan Wielenga
 
What's New in NetBeans IDE 7.x
What's New in NetBeans IDE 7.xWhat's New in NetBeans IDE 7.x
What's New in NetBeans IDE 7.xGeertjan Wielenga
 
What’s New & Cool in NetBeans IDE 7.x
What’s New & Cool in NetBeans IDE 7.xWhat’s New & Cool in NetBeans IDE 7.x
What’s New & Cool in NetBeans IDE 7.xErik Gur
 
eXo Platform SEA - Play Framework Introduction
eXo Platform SEA - Play Framework IntroductioneXo Platform SEA - Play Framework Introduction
eXo Platform SEA - Play Framework Introductionvstorm83
 
Asp.Net Core MVC , Razor page , Entity Framework Core
Asp.Net Core MVC , Razor page , Entity Framework CoreAsp.Net Core MVC , Razor page , Entity Framework Core
Asp.Net Core MVC , Razor page , Entity Framework Coremohamed elshafey
 
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013Mack Hardy
 
Node js (runtime environment + js library) platform
Node js (runtime environment + js library) platformNode js (runtime environment + js library) platform
Node js (runtime environment + js library) platformSreenivas Kappala
 

Similar to Build Desktop Apps with NetBeans Platform (20)

Developing Plug-Ins for NetBeans
Developing Plug-Ins for NetBeansDeveloping Plug-Ins for NetBeans
Developing Plug-Ins for NetBeans
 
Eclipse vs Netbean vs Railo
Eclipse vs Netbean vs RailoEclipse vs Netbean vs Railo
Eclipse vs Netbean vs Railo
 
Netbeans65 Osum Slides
Netbeans65 Osum SlidesNetbeans65 Osum Slides
Netbeans65 Osum Slides
 
Nuxeo Roadmap 2008/06
Nuxeo Roadmap 2008/06Nuxeo Roadmap 2008/06
Nuxeo Roadmap 2008/06
 
Project report for final year project
Project report for final year projectProject report for final year project
Project report for final year project
 
whats-new-netbeans-ide-7x.pptx
whats-new-netbeans-ide-7x.pptxwhats-new-netbeans-ide-7x.pptx
whats-new-netbeans-ide-7x.pptx
 
005528214.pdf
005528214.pdf005528214.pdf
005528214.pdf
 
Frankenstein's IDE: NetBeans and OSGi
Frankenstein's IDE: NetBeans and OSGiFrankenstein's IDE: NetBeans and OSGi
Frankenstein's IDE: NetBeans and OSGi
 
Modern web application development with java ee 7
Modern web application development with java ee 7Modern web application development with java ee 7
Modern web application development with java ee 7
 
NetBeans 6.5
NetBeans 6.5NetBeans 6.5
NetBeans 6.5
 
Busy developer-html5-javaee7
Busy developer-html5-javaee7Busy developer-html5-javaee7
Busy developer-html5-javaee7
 
What's New in NetBeans IDE 7.x
What's New in NetBeans IDE 7.xWhat's New in NetBeans IDE 7.x
What's New in NetBeans IDE 7.x
 
What’s New & Cool in NetBeans IDE 7.x
What’s New & Cool in NetBeans IDE 7.xWhat’s New & Cool in NetBeans IDE 7.x
What’s New & Cool in NetBeans IDE 7.x
 
NetBeans IDE & Platform
NetBeans IDE & PlatformNetBeans IDE & Platform
NetBeans IDE & Platform
 
eXo Platform SEA - Play Framework Introduction
eXo Platform SEA - Play Framework IntroductioneXo Platform SEA - Play Framework Introduction
eXo Platform SEA - Play Framework Introduction
 
Asp.Net Core MVC , Razor page , Entity Framework Core
Asp.Net Core MVC , Razor page , Entity Framework CoreAsp.Net Core MVC , Razor page , Entity Framework Core
Asp.Net Core MVC , Razor page , Entity Framework Core
 
Net Beans
Net BeansNet Beans
Net Beans
 
Net Beans
Net BeansNet Beans
Net Beans
 
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
 
Node js (runtime environment + js library) platform
Node js (runtime environment + js library) platformNode js (runtime environment + js library) platform
Node js (runtime environment + js library) platform
 

Recently uploaded

WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 

Recently uploaded (20)

WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 

Build Desktop Apps with NetBeans Platform

  • 1. NETBEANS PLATFORM Satyajit Tripathi Member Technical Staff ISV-Engineering, Sun Microsystems 1
  • 2. NetBeans Platform Build new desktop applications without re-inventing the wheel • NetBeans Platform is a broad SWING-based framework to create rich desktop applications • Platform provides out-of-the-box APIs to simplify application common requirements such as window management, menus, actions, settings and storage, an update manager, and files access • Core of NetBeans-IDE is Platform ie. NetBeans-IDE 'minus' IDE specific modules 2
  • 3. NetBeans Platform Manager NetBeans IDE 6.1 (build 200805300101) 3
  • 4. NetBeans Module (Plugin) Add the missing functionalities to IDE • Module can be built to extend the functionality of NetBeans IDE and to add specific features • NetBeans (Plug-in) Module is a group of Java classes that interacts with NetBeans APIs and provides an application with specific features • Java classes use the MANIFEST.MF file to declare the module and XML Layer file (layer.xml) to register their functionality • Modules with non-installer distributions are packaged as NBM files (.nbm extension) 4
  • 5. Module (Plugin) Development Development Life cycle • Setting up the project • NetBeans IDE generates Project organization and code • Coding the module or application • Building and Running • Testing, Debugging, and Profiling • Branding and Distributing 5
  • 8. NetBeans APIs Complete API set is quite extensive! • Action APIs • Palette APIs • File Systems APIs • Refactoring APIs • Loaders APIs • MultiView APIs • Nodes APIs • JavaHelp Integration APIs • Windows APIs 8
  • 9. Action APIs Package : org.openide.actions • Standard SWING Actions For installation of global, always-enabled actions, register javax.swing.Action in appropriate folder of System Filesystem. Not necessary to subclass one of NetBeans action class. Actions are presented in popup menus or attached to a component such as window, node, data object, or filesystem, or installed globally in the main menu or toolbars • Standard NetBeans API Actions Action subclasses available in NetBeans API are subclass of SystemAction. SystemAction objects should be Singleton. > Callback actions > Context-sensitive (base class org.openide.util.actions) > Presenters • UseCallableSystemAction (Always enabled) • Use CookieAction (Conditionally enabled) One or Multiple Nodes 9
  • 10. File System APIs Package : org.openide.filesystems • Manipulating files on disk, and used indirectly by Loaders API • Common Tasks > Finding files and folders > Creating, deleting and renaming files and folders > Reading and writing files > Listening on file events > Determining MIME Content type 10
  • 11. Loaders (Datasystems) APIs Package : org.openide.loaders • Datasystems are the logical layer between a filesystem and higher level file oriented operations. The API works on top of file objects and gives each file a logical behavior – icon, name, operation, etc. Each file types recognized by NetBeans has a corresponding DataObject subclass provided by the module that add support for the file type • There are three packages in this API > org.openide.loaders Handles cluster of files together into groups and assign types to data > org.openide.cookies Provides a design pattern for attachable behaviors to data objects and nodes. Cookies provides a way for both data objects and nodes to indicate in flexible and dynamic fashion the operation supported > org.openide.util.datatransfer Implements some extensions to the clipboard, and enhances the functions provided in java.awt.datatransfer 11
  • 12. Nodes APIs Package : org.openide.nodes • The Nodes API controls the usage and creation of nodes, which are a variant of Java Beans having adjustable property sets; provide cookies and actions; formed into a hierarchical tree. • Common node types > Data nodes > Data folder nodes > A user-developed Java Bean on disk > A node derived from a Java Bean , not representing one > The Component Palette > A breakpoint in the debugger is a node > A project desktop node (various files associated with a project) 12
  • 13. Window System APIs Package : org.openide.windows • The implementation takes care of the main window, all multi-tabbed, and split frames, toolbars and MDI/SDI support • As a rule, modules should not create their own top-level windows (eg. java.awt.Window). Those would otherwise not be managed by NetBeans window manager • Window API allows module to provide window-like components, mainly through embeddable visual components called topcomponents. A top component is a SWING component and need to be docked to be manipulated by the window system • Window manager is capable of manipulating application windows including docking and window configuration persistent across session • The window system layout in NetBeans is based on modes. API provides access to modes but cannot create directly. This can be achieved by specifying in the XML layer 13
  • 14. Component Palette APIs Package : org.netbeans.spi.palette • The API provides access to Common Component Palette. The palette client can define content to displayed in the common palette TopComponent when their editors are active • The API includes support for the clients writing palette content insertable into the text editor • Allows users to Drag and Drop text into the palette to create new custom code clips. This can be achieved by subclassing DragAndDropHandler • Palette visibility is defined per document-type • Palette provider needs to define own actions to reset its default state • Allows associating palette content with document MIME type • Allows displaying name and tooltip to be defined directly in item's XML 14
  • 15. MultiView APIs Package : org.netbeans.core.api.multiview org.netbeans.core.spi.multiview • The API allows to access the multiview component's content. The SPI handles the lifecycle of a multiview component • Multi views enable modules to display several perspectives, or views of data, visually represented as data document or object in unified manner at one specific place in the system • A marker interface SourceViewMarker has been added to the MultiViewDescription instance to identify as containing source code • Factory methods to create multiview components • MultiViews project depends on Window System API (org.openide.windows.TopComponent) and some new APIs in openide NbDocument.CustomToolbar and CloneableEditorSupport.Pane 15
  • 16. JavaHelp Integration APIs Package : org.netbeans.api.javahelp • JavaHelp integration API wraps the standard JavaHelp extension library (jh.jar version 1.1.3 or on Solaris /usr/j2se/opt/javahelp/lib/jhall.jar) • It also provides a small additional API for NetBeans modules to supply help sets to the system, add GUI menu items, and request that particular help topics be displayed • A singleton instance of org.netbeans.api.javahelp.Help is registered into lookup. An instance of a handler for the nbdocs URL protocol is also registered for the module code to find it 16
  • 17. NetBeans 6.1 Platform Resources • NetBeans Platform Site : platform.netbeans.org > Learning: overview, tutorials, quick start, FAQ > Community: news, mailing-list, nbusers@netbeans.org, source • NetBeans API List : Javadoc • NetBeans 6.1 API Changes : api-changes • NetBeans Platform wiki : wiki.netbeans.org > Release and planning, answers and support, tutorial and api-docs • Expert Presentation Series : netbeans_platform • NetBeans Platform Certified Training : nbplatform-certified-training 17